﻿@page
@using LLama.Common;
@model LLama.Abstractions.IInferenceParams

<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>MaxTokens</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.MaxTokens, new { @type="range", @class = "slider", min="-1", max="2048", step="1" })
            <label>0</label>
        </div>
    </div>

    <div class="d-flex flex-column mb-2">
        <small>TokensKeep</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.TokensKeep, new { @type="range", @class = "slider", min="0", max="2048", step="1" })
            <label>0</label>
        </div>
    </div>
</div>

<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>TopK</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.TopK, new { @type="range", @class = "slider", min="-1", max="100", step="1" })
            <label>0</label>
        </div>
    </div>

    <div class="d-flex flex-column mb-2">
        <small>TopP</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.TopP, new { @type="range", @class = "slider", min="0.0", max="1.0", step="0.01" })
            <label>0</label>
        </div>
    </div>
</div>



<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>TypicalP</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.TypicalP, new { @type="range", @class = "slider", min="0.0", max="1.0", step="0.01" })
            <label>0</label>
        </div>
    </div>

    <div class="d-flex flex-column mb-2">
        <small>Temperature</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.Temperature, new { @type="range", @class = "slider", min="0.0", max="1.5", step="0.01" })
            <label>0</label>
        </div>
    </div>
</div>

<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>RepeatPenalty</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.RepeatPenalty, new { @type="range", @class = "slider", min="0.0", max="2.0", step="0.01" })
            <label>0</label>
        </div>
    </div>

    <div class="d-flex flex-column mb-2">
        <small>RepeatLastTokensCount</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.RepeatLastTokensCount, new { @type="range", @class = "slider", min="0", max="2048", step="1" })
            <label>0</label>
        </div>
    </div>
</div>

<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>FrequencyPenalty</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.FrequencyPenalty, new { @type="range", @class = "slider", min="0.0", max="1.0", step="0.01" })
            <label>0</label>
        </div>
    </div>

    <div class="d-flex flex-column mb-2">
        <small>PresencePenalty</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.PresencePenalty, new { @type="range", @class = "slider", min="0.0", max="1.0", step="0.01" })
            <label>0</label>
        </div>
    </div>
</div>

<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>TfsZ</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.TfsZ, new { @type="range", @class = "slider",min="0.0", max="1.0", step="0.01" })
            <label>0</label>
        </div>
    </div>
    <div class="d-flex flex-column mb-2">
        <small>-</small>
        <div class="d-flex flex-row slider-container">
            <input class="slider" type="range" value="0" disabled />
            <label></label>
        </div>
    </div>
</div>


<div class="d-flex flex-column mb-2">
    <small>Sampler Type</small>
    @Html.DropDownListFor(m => m.Mirostat,  Html.GetEnumSelectList<MirostatType>(), new { @class = "form-control form-select" })
</div>

<div class="d-flex flex-row gap-3">
    <div class="d-flex flex-column mb-2">
        <small>MirostatTau</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.MirostatTau, new { @type="range", @class = "slider", min="0.0", max="10.0", step="0.01" })
            <label>0</label>
        </div>
    </div>

    <div class="d-flex flex-column mb-2">
        <small>MirostatEta</small>
        <div class="d-flex flex-row slider-container">
            @Html.TextBoxFor(m => m.MirostatEta, new { @type="range", @class = "slider", min="0.0", max="1.0", step="0.01" })
            <label>0.0</label>
        </div>
    </div>
</div>